// 封装请求
import axios from 'axios'
// 引入vuex
import store from '@/store'
// json-bigint处理大数字问题插件
import JSONBig from 'json-bigint'
const request = axios.create({
  // http://toutiao-app.itheima.net/ 需要把请求的app删除
  // http://ttapi.research.itcast.cn/
  baseURL: 'http://toutiao-app.itheima.net/',
  // `transformResponse` 在传递给 then/catch 前，允许修改响应数据
  transformResponse: [function (data) {
    try {
      // 如果转换成功则返回转换的数据结果
      return JSONBig.parse(data)
    } catch (err) {
      // 如果转换失败，则包装为统一数据格式并返回
      return data
    }
  }]
})

// 请求拦截器
request.interceptors.request.use(config => {
  const { user } = store.state
  console.log(config)
  if (user && user.token && config.url === '/v1_0/authorizations' && config.method === 'put') {
    config.headers.Authorization = 'Bearer ' + user.refresh_token
  } else if (user && user.token) {
    config.headers.Authorization = 'Bearer ' + user.token
  }

  return config
})
export default request
